เมื่อเร็ว ๆ นี้ฉันได้โทรหาทีมวิศวกรของฉันที่ไม่ได้รับการเจรจา: ฉันกําลังกระตุ้นนักพัฒนาของฉันที่จะรวมหุ่นยนต์ AI ในกระบวนการทํางานของพวกเขาสําหรับการเขียน refactoring และทดสอบโค้ดทุกวัน ในภูมิทัศน์ปัจจุบันโลกเทคโนโลยีกําลังเคลื่อนไหวด้วยความเร็วที่ทําให้การเข้ารหัส "เฉพาะด้วยตนเอง" รู้สึกเหมือนจะพยายามที่จะชนะการแข่งขันฟอร์มาลัม 1 บนจักรยาน หากเราไม่ใช้ประโยชน์จากเครื่องมือเหล่านี้เราไม่เพียง แต่ชะลอลง เรากลายเป็นชั่วคราว Using AI is no longer optional. แต่ถ้าฉันจะซื่อสัตย์อย่างสมบูรณ์คําสั่งนี้ทําให้ฉันไม่พอใจอย่างไม่น่าเชื่อ ในฐานะที่เป็นหัวหน้าวิศวกรรมฉันสมดุลความต้องการความเร็วกับความเป็นไปได้ที่น่ากลัวของ "อัตโนมัติเฉียบพลัน" นี่คือเหตุผลที่ฉันบังคับให้ AI เก็บที่ฉันกําลังมองหาและกฎที่ฉันได้ตั้งไว้เพื่อให้แน่ใจว่าเราไม่สูญเสียจิตวิญญาณของเราไปยัง LLMs การตกอยู่ใน "The Dead Loop" ผู้ฆ่าความสามารถในการผลิตที่ยิ่งใหญ่ที่สุดที่ฉันเห็นไม่ใช่การขาดเครื่องมือ เราทุกคนได้สัมผัสกับความโกรธ hypnotic ที่คุณเชื่อว่า AI คือ จากโซลูชั่นที่สมบูรณ์แบบ Dead Loop. เท่านั้นหนึ่งอย่างรวดเร็ว มันมักจะเกิดขึ้นเช่นนี้: AI สร้างบล็อกของรหัส (พูดถึงตัวควบคุม Java Spring Boot ที่ซับซ้อน) ที่ดูถูกต้อง แต่ไม่สามารถดําเนินการได้ คุณให้อาหารข้อผิดพลาดกลับไปยัง AI AI "ขออภัย" สําหรับการดูแลและให้ความสมเหตุสมผลที่ทําลายเช่นเดียวกับคุณอาจเปลี่ยนชื่อตัวแปรหรือสองตัว คุณทําซ้ํานี้จนกว่าจะหายไปสองชั่วโมง ในเวลาสองชั่วโมงหนึ่งวิศวกรที่มีประสบการณ์อาจเขียนกลยุทธ์จากจุดเริ่มต้นทดสอบหน่วยและจับกาแฟ "Dead Loop" เป็นอันตรายเพราะรู้สึกเหมือนทํางาน แต่ในความเป็นจริงมันเป็นเพียงการหมุนล้อที่มีราคาแพง เราไม่สามารถอนุญาตให้ความสะดวกของปุ่ม "สร้าง" ยกเลิกการแก้ปัญหาพื้นฐานของเรา การสูญเสีย“ ภาพใหญ่” AI เป็นผู้ปกครองของไมโคร แต่เป็นผู้เริ่มต้นของแมโคร มันสามารถเขียน regex ที่ไม่มีข้อบกพร่องหรือฟังก์ชั่นผู้ช่วยสั้น ๆ ในไม่กี่วินาที อย่างไรก็ตามมันมีแนวคิด zero ของวิธีการที่ฟังก์ชั่นนั้นส่งผลกระทบต่อการปรับขนาดระยะยาวของสถาปัตยกรรมแอพพลิเคชันทั้งหมดของเรา เมื่อนักพัฒนาพึ่งพาชิ้นส่วน AI ที่ถูกคัดลอกแล้วฐานรหัสจะเริ่มดูเหมือนโครงการ "Frankenstein" - ชุดชิ้นส่วนที่ทํางานแยกต่างหาก แต่ไม่ได้เป็นส่วนหนึ่ง และจํานวนมากของ มันจะไม่เปิดเผยตัวเองในวันนี้ แต่จะทําให้ชีวิตของเราเป็นความฝันร้ายหนึ่งปีนับจากตอนนี้เมื่อเราพยายามที่จะ refactor Leaky Abstractions Technical Debt ในฐานะที่เป็นผู้นําฉันกลัวว่าเราจะหยุดสร้างระบบที่สอดคล้องกันและเริ่ม "จัดการ" ชุดของสคริปต์ที่ไม่เชื่อมต่อกัน 3 กฎง่ายๆของฉัน เพื่อให้ข้อดีด้านวิศวกรรมของเรามีความคมชัดฉันได้กําหนดสาม "กฎพื้นฐาน" ที่แต่ละนักพัฒนาในทีมของฉันต้องปฏิบัติตาม: 1. รักษาเช่นเดียวกับอินเตอร์ความเร็วสูง พิจารณา AI เป็นผู้ฝึกอบรมระดับ junior ที่รวดเร็วมากและมีความปรารถนามาก นักฝึกอบรมสามารถช่วยให้คุณประหยัดเวลาในการทํางานอย่างหนัก แต่คุณไม่เคยมุ่งมั่นที่จะใช้รหัสของพวกเขาในการผลิตโดยไม่มีการตรวจสอบตามลําดับ คุณเป็นสถาปัตยกรรมระดับสูง AI เป็นผู้ช่วย If you can't explain what the AI wrote, you aren't allowed to merge it. 2. ปล่อยให้มันพิมพ์ อย่าปล่อยให้มันคิด ใช้ AI สําหรับส่วน "เครื่องจักรกล" ของการเข้ารหัส - boilerplate แบบซ้ําซ้อนแปลงรูปแบบข้อมูลหรือเขียนส่วนประกอบ UI ฐานใน Vue หรือ Tailwind แต่การตัดสินใจทางสถาปัตยกรรม - "ทําไม" ที่อยู่เบื้องหลังแผนฐานข้อมูลหรือโปรโตคอลความปลอดภัย - ควรมาจากสมองของมนุษย์ เราใช้บอทสําหรับงาน ไม่ใช่ the . การทํางาน โจมตี 3. กฎ 10 นาที หากคุณใช้เวลามากกว่า 10 นาทีในการโต้แย้งกับบอทหรือพยายาม "กระตุ้นวิศวกร" แก้ไขข้อผิดพลาดเฉพาะ นี่คือเครื่องตัดวงจรสําหรับ Dead Loop บางครั้งวิธี "โรงเรียนเก่า" ของการเปิดเอกสารและพิมพ์มันออกด้วยตัวเองยังคงเป็นวิธีที่เร็วที่สุดและเชื่อถือได้ที่สุดเพื่อแก้ปัญหา turn it off. เส้นด้านล่าง เราเข้าสู่ยุคที่การกําหนดค่าของ "วิศวกรระดับสูง" เปลี่ยนไป มันไม่ได้เป็นเรื่องเพียงแค่ว่าคุณรู้ซิงโต็กซ์ได้อย่างไร มันเป็นเรื่องว่าคุณสามารถจัดการชุดเครื่องมือได้อย่างไรเพื่อผลิตผลลัพธ์ที่ปลอดภัยและสามารถปรับขนาดได้ ฉันต้องการให้ทีมงานของฉันมีเครื่องมือที่ดีที่สุดในโลก ฉันต้องการให้เราเป็นบ้านซอฟต์แวร์ที่เร็วที่สุดในตลาด แต่ฉันปฏิเสธที่จะปล่อยให้เราสูญเสีย "กล้ามเนื้อวิศวกรรม" ของเรา ใช้บอทไว้ในการควบคุมและไม่ปล่อยให้ AI ทําความคิดหนักสําหรับคุณ ในขณะที่เราหยุดสงสัยเกี่ยวกับผลผลิตคือช่วงเวลาที่เราหยุดเป็นวิศวกรและเริ่มเป็นพนักงานป้อนข้อมูลสําหรับ LLMs